<?php
class AyudantiasController extends AppController {
	var $name = 'Ayudantias';
//ADMIN
	function admin_index() {
		$this->Ayudantia->recursive = 0;
		$this->set('ayudantias', $this->paginate());
	}

	function admin_listaPendientes() {
		$this->Ayudantia->recursive = 0;
		$this->set('ayudantias', $this->paginate(array('Ayudantia.estado' => 'Pendiente'))
		                                                      );
	}

	function admin_listaAceptadas() {
		$this->Ayudantia->recursive = 0;
		$this->set('ayudantias', $this->paginate(array('Ayudantia.estado' => 'Aceptada'))
		                                                      );
	}

	function admin_listaFinalizadas() {
		$this->Ayudantia->recursive = 0;
		$this->set('ayudantias', $this->paginate(array('Ayudantia.estado' => 'Finalizada'))
		                                                      );
	}

	function admin_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid ayudantia', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('ayudantia', $this->Ayudantia->read(null, $id));
	}



	function admin_edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid ayudantia', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Ayudantia->save($this->data)) {
				$datos_resumen['ResumenesAyudantia'] = $this->data['Ayudantia'];
				$datos_resumen['ResumenesAyudantia']['ayudantia_id'] = $id;
				$datos_resumen['ResumenesAyudantia']['id'] = '';
				App::import ('Model', 'ResumenesAyudantia');
				$resumen = new ResumenesAyudantia();
				$resumen->create();
				$resumen->save($datos_resumen);

				$this->Session->setFlash(__('The ayudantia has been saved', true));
				$this->redirect(array('action' => 'index'));

			} else {
				$this->Session->setFlash(__('The ayudantia could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Ayudantia->read(null, $id);
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		$comunas = $this->Ayudantia->Comuna->find('list', array('fields' => array('Comuna.nombre')));
		//$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes', 'comunas'));
	}

	function admin_gestionarPendiente($id = null){
    	if (!$id && empty($this->data)) {
    			$this->Session->setFlash(__('Ayudantia inválida', true));
    			$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
		    if ($this->data['Ayudantia']['estado'] == 'Cancelada'){
		        $this->Ayudantia->delete($id);
		        $this->Session->setFlash(__('La ayudantia ha sido cancelada', true));
			    $this->redirect(array('action'=>'gestionarPendiente'));
		    }
			if ($this->Ayudantia->save($this->data)) {
				$this->Session->setFlash(__('La ayudantia ha sido aceptada', true));
				//Guardar registro en historico
				$datos_ayudantia = $this->Ayudantia->findById($id, array('recursive' => 0));
				$datos_resumen['ResumenesAyudantia'] = $datos_ayudantia['Ayudantia'];
				$datos_resumen['ResumenesAyudantia']['ayudantia_id'] = $id;
				$datos_resumen['ResumenesAyudantia']['id'] = '';
				$datos_resumen['ResumenesAyudantia']['created'] = null;
				App::import ('Model', 'ResumenesAyudantia');
				$resumen = new ResumenesAyudantia();
				$resumen->create();
				$resumen->save($datos_resumen);
				$this->redirect(array('action' => 'gestionarPendiente'));
			} else {
				$this->Session->setFlash(__('Los cambios no se han podido guardar. Intente denuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Ayudantia->read(null, $id);
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$coord = $this->Ayudantia->Usuario->find('list', array('conditions' => array('tipo' => 'Administrador')));
		foreach($coord as $coo){
			$coordinador[$coo] = $coo;
		}
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		//$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes', 'coordinador'));
	}

	function admin_gestionarAceptada($id = null){
    	if (!$id && empty($this->data)) {
    			$this->Session->setFlash(__('Ayudantia inválida', true));
    			$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
		    if ($this->data['Ayudantia']['estado'] == 'Cancelada'){
		        $this->Ayudantia->delete($id);
		        $this->Session->setFlash(__('La ayudantia ha sido cancelada', true));
			    $this->redirect(array('action'=>'gestionarPendiente'));
		    }
			if ($this->Ayudantia->save($this->data)) {
				//Guardar registro en historico
				$datos_ayudantia = $this->Ayudantia->findById($id, array('recursive' => 0));
				$datos_resumen['ResumenesAyudantia'] = $datos_ayudantia['Ayudantia'];
				$datos_resumen['ResumenesAyudantia']['ayudantia_id'] = $id;
				$datos_resumen['ResumenesAyudantia']['id'] = '';
				$datos_resumen['ResumenesAyudantia']['created'] = null;
				App::import ('Model', 'ResumenesAyudantia');
				$resumen = new ResumenesAyudantia();
				$resumen->create();
				$resumen->save($datos_resumen);
				//
				$this->Session->setFlash(__('La ayudantia ha sido Finalizada', true));
				$this->redirect(array('action' => 'gestionarPendiente'));
			} else {
				$this->Session->setFlash(__('Los cambios no se han podido guardar. Intente denuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Ayudantia->read(null, $id);
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		//$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes'));
	}

	function admin_gestionarFinalizada($id = null){
    	if (!$id && empty($this->data)) {
    			$this->Session->setFlash(__('Ayudantia inválida', true));
    			$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
		    if ($this->data['Ayudantia']['estado'] == 'Cancelada'){
		        $this->Ayudantia->delete($id);
		        $this->Session->setFlash(__('La ayudantia ha sido cancelada', true));
			    $this->redirect(array('action'=>'gestionarPendiente'));
		    }
			if ($this->Ayudantia->save($this->data)) {
				$this->Session->setFlash(__('La ayudantia ha sido finalizada', true));
								//Guardar registro en historico
				$datos_ayudantia = $this->Ayudantia->findById($id, array('recursive' => 0));
				$datos_resumen['ResumenesAyudantia'] = $datos_ayudantia['Ayudantia'];
				$datos_resumen['ResumenesAyudantia']['ayudantia_id'] = $id;
				$datos_resumen['ResumenesAyudantia']['id'] = '';
				$datos_resumen['ResumenesAyudantia']['created'] = null;
				App::import ('Model', 'ResumenesAyudantia');
				$resumen = new ResumenesAyudantia();
				$resumen->create();
				$resumen->save($datos_resumen);
				$this->redirect(array('action' => 'gestionarPendiente'));
			} else {
				$this->Session->setFlash(__('Los cambios no se han podido guardar. Intente denuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Ayudantia->read(null, $id);
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		//$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes'));
	}
	function admin_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for ayudantia', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Ayudantia->delete($id)) {
			$this->Session->setFlash(__('Ayudantia deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Ayudantia was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}

//ESCOLAR
	function escolar_index() {
		$this->Ayudantia->recursive = 0;
		$this->set('ayudantias', $this->paginate());
	}

	function escolar_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid ayudantia', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('ayudantia', $this->Ayudantia->read(null, $id));
	}

	function escolar_add() {
	    //variables correo
	   $this->Email->from = 'PORTAL REDU <escolares@clasesredu.cl>';
       $this->Email->to = 'REDU <escolares@clasesredu.cl>';
       $this->Email->subject = 'Solicitud de ayudantia';
		if (!empty($this->data)) {
			$this->Ayudantia->create();
			if ($this->Ayudantia->save($this->data)) {
				$id = $this->Ayudantia->find('first', array('conditions' 	=> array('usuario_id' => $this->Auth->user('id')),
															'order' 		=> 'created DESC',
															'fields'		=> 'Ayudantia.id',
															'recursive' 	=> 0)
											);
				App::import('Model', 'ResumenesAyudantia');
				$resumen = new ResumenesAyudantia();
				$datos_resumen['ResumenesAyudantia'] = $this->data['Ayudantia'];
				$datos_resumen['ResumenesAyudantia']['ayudantia_id'] = $id['Ayudantia']['id'];
				$resumen->create();
				$resumen->save($datos_resumen);
				$this->Session->setFlash('La ayudantía ha si solicitada. En breve, un representante de REDU se comunicará con usted.', 'flash_success');
                $this->Email->send('Se ha solicitado una ayudantia!');
				$this->redirect(array('controller' => 'pages', 'action' => 'home'));
			} else {
				$this->Session->setFlash(__('The ayudantia could not be saved. Please, try again.', true));
			}
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		$precios_pack = $this->Ayudantia->Pack->find('list', array('fields' => array('Pack.precio')));
		$comunas = $this->Ayudantia->Comuna->find('list', array('fields' => array('Comuna.nombre'), 'order'=>'nombre ASC'));
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes', 'precios_pack', 'comunas'));
	}

	function escolar_edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid ayudantia', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Ayudantia->save($this->data)) {
				$this->Session->setFlash(__('The ayudantia has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The ayudantia could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Ayudantia->read(null, $id);
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes'));
	}

	function escolar_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for ayudantia', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Ayudantia->delete($id)) {
			$this->Session->setFlash(__('Ayudantia deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Ayudantia was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}

//UNIVERSITARIO
	function universitario_index() {
		$this->Ayudantia->recursive = 0;
		$this->set('ayudantias', $this->paginate());
	}

	function universitario_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid ayudantia', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('ayudantia', $this->Ayudantia->read(null, $id));
	}

	function universitario_add() {
		if (!empty($this->data)) {
			$this->Ayudantia->create();
			if ($this->Ayudantia->save($this->data)) {
				$this->Session->setFlash(__('The ayudantia has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The ayudantia could not be saved. Please, try again.', true));
			}
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes'));
	}

	function universitario_edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid ayudantia', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Ayudantia->save($this->data)) {
				$this->Session->setFlash(__('The ayudantia has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The ayudantia could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Ayudantia->read(null, $id);
		}
		$usuarios = $this->Ayudantia->Usuario->find('list');
		$ayudantes = $this->Ayudantia->Ayudante->find('list');
		$asignaturas = $this->Ayudantia->Asignatura->find('list');
		$packs = $this->Ayudantia->Pack->find('list');
		$resumenes = $this->Ayudantia->Resumene->find('list');
		$this->set(compact('usuarios', 'ayudantes', 'asignaturas', 'packs', 'resumenes'));
	}

	function universitario_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for ayudantia', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Ayudantia->delete($id)) {
			$this->Session->setFlash(__('Ayudantia deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Ayudantia was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}

        function escolar_calcular_precio ($num_horas = null, $num_alumnos = null){
            if($num_horas == NULL or $num_alumnos == NULL){
                $this->Session->setFlash('El precio no pude ser calculado', 'flash_error');
            }

            $precio_cal = $this->Ayudantia->Precio->find('first', array(
                'conditions' => array(

                        array('numero_horas =' => $num_horas),
                        array('numero_alumnos =' => $num_alumnos)

                ),
                'fields' => 'precio'
            ));
            $this->set('precio_calculado', $precio_cal['Precio']['precio']);

        }

      function escolar_ajx_obtenerPrecio($num_horas = null, $num_alumnos = null){
            if($num_horas == NULL or $num_alumnos == NULL){
                $this->Session->setFlash('El precio no pude ser calculado', 'flash_error');
            }

            $precio_cal = $this->Ayudantia->Precio->find('first', array(
                'conditions' => array(

                        array('numero_horas' => $num_horas),
                        array('numero_alumnos' => $num_alumnos)

                ),
                'fields' => 'precio'
            ));
            $this->set('precio_calculado', $precio_cal['Precio']['precio']);
       }

       function escolar_ajx_precioPack($id_pack = null){
           if($id_pack==null){
               $this->Session->setFlash('El pack no existe', 'flash_error');
           }

           $precio_pack = $this->Ayudantia->Pack->find('first',
               array(
                   'conditions' => array(
                        'Pack.id = '=>$id_pack
                   ),
                   'fields' => 'precio'
               )
           );
           $this->set('precio_calculado', $precio_pack['Pack']['precio']);
       }
}
?>